/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.uoc.tdp.common;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author joboni
 */
public  class EOlympicsUtils {
    /**
     * Retorna true si té format correcte de data
     * @param date
     * @return Boolean
     */
    public static boolean isValidDate(String date){
        SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
        try
        {
            sdf.parse(date);
            
        } catch (ParseException e){
            return false;
        }
        return true;

    } 
    /**
     * Converteix una data en format texte en format data
     * @param date                  Cadena de texte 
     * @return  una data en format java.util.date
     * @throws ParseException
     * @throws EOlympicsException   Si la data no es correcte
     */
    public static Date getDate(String date) throws ParseException, EOlympicsException{
        Date testDate=null;
        
        try{
            if(date.contains("-")){
                testDate= new SimpleDateFormat("dd-MM-yyyy").parse(date);
            }else{
                testDate= new SimpleDateFormat("dd/MM/yyyy").parse(date);
            }    
        }catch (ParseException e){
            throw new EOlympicsException(EOlympicsException.ERR_DATE);
        }        
        return testDate;
    }
    
    
    /**
     * Converteix una data en format texte en format data
     * @param date                  Cadena de texte 
     * @return  una data en format java.util.date
     * @throws ParseException
     * @throws EOlympicsException   Si la data no es correcte
     */
    public static Date getDateSimpleFormat(String date) {
        Date testDate=null;
        try{
            if(date.contains("-")){
                testDate= new SimpleDateFormat("dd-MM-yyyy").parse(date);
            }else{
                testDate= new SimpleDateFormat("dd/MM/yyyy").parse(date);
            }    
        }catch (ParseException e){
            return null;
        }        
        return testDate;
    }
    
    
    /**
     * Recupera una data amb el format dd-MM-yyyy 
     * @param date      Data a formatejar
     * @return String   Data formatejada
     */
    public static String getStringDate(Date date){
        String sDate=null;
        sDate= new SimpleDateFormat("dd/MM/yyyy").format(date);                                
        return sDate;
        
    }
    
    /**
     * Recupera una data amb el format dd/MM/yyyy 
     * @param date      Data a formatejar
     * @return String   Data formatejada
     */
    public static String getStringDateSimpleFormat(Date date){
        String sDate=null;
        sDate= new SimpleDateFormat("dd/MM/yyyy").format(date);                                
        return sDate;
        
    }
    
}
